package cn.exrick.xboot.modules.projectinfo.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.Info;
import lombok.Data;
import javax.persistence.Id;
import lombok.experimental.Accessors;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * @author sdtf
 */
@Data
@Accessors(chain = true)
@Entity
@DS("other")
@DynamicInsert
@DynamicUpdate
@Table(name = "bic_azxm_d00200")
@TableName("bic_azxm_d00200")
@ApiModel(value = "项目基本信息")
public class ProjectInfo {

    private static final long serialVersionUID = 1L;

    @Id
    @ApiModelProperty(value = "项目编号(内码)")
    @TableId(value = "zproj_id", type = IdType.AUTO)
    private String zprojId;

    @ApiModelProperty(value = "省份编码")
    private String areaCode;

    @ApiModelProperty(value = "项目编号")
    private String zprojcode;

    @ApiModelProperty(value = "项目名称")
    private String ztfxmmc0;

    @ApiModelProperty(value = "项目简称 ")
    private String zxmjc;

    @ApiModelProperty(value = "项目自主编号")
    private String zpcuscode;

    @ApiModelProperty(value = "项目类型")
    private String zprojtype;

    @ApiModelProperty(value = "项目性质")
    private String zpnature;

    @ApiModelProperty(value = "项目立项方式")
    private String zprojway;

    @ApiModelProperty(value = "专业类型")
    private String zspecty;

    @ApiModelProperty(value = "父级项目ID")
    private String zppartid;

    @ApiModelProperty(value = "项目层级")
    private String zprodepth;

    @ApiModelProperty(value = "项目状态 ")
    private String zpstatus;

    @ApiModelProperty(value = "项目过程状态")
    private String ztfgczt0;

    @ApiModelProperty(value = "项目过程名称")
    private String ztfgcmc0;

    @ApiModelProperty(value = "项目取消状态 ")
    private String zpcanstat;

    @ApiModelProperty(value = "甲方项目编号")
    private String zpowncode;

    @ApiModelProperty(value = "甲方项目名称")
    private String zpownname;

    @ApiModelProperty(value = "是否关联应急项目 ")
    private String zemergenc;

    @ApiModelProperty(value = "关联正式项目编号")
    private String zsxmCode;

    @ApiModelProperty(value = "COMID(业务系统)")
    private String ztfcomid;

    @ApiModelProperty(value = "负责部门编号")
    private String zchargorg;

    @ApiModelProperty(value = "项目经理编号")
    private String zpmid;

    @ApiModelProperty(value = "施工区域")
    private String zareaid;

    @ApiModelProperty(value = "同步状态 ")
    private String ztftbzt0;

    @ApiModelProperty(value = "创建人 ")
    private String zcreateid;

    @ApiModelProperty(value = "创建日期")
    private String erdat;

    @ApiModelProperty(value = "更改人 ")
    private String zaedatid;

    @ApiModelProperty(value = "更改日期")
    private String aedat;

    @ApiModelProperty(value = "结项状态")
    private String zjxzht;

    @ApiModelProperty(value = "预算状态 ")
    private String zyszht;

    @ApiModelProperty(value = "是否高薪企业")
    private String zshfgxqy;

    @ApiModelProperty(value = "是否关联交易")
    private String zsfgljy;

    @ApiModelProperty(value = "关联交易类型")
    private String zccstrans;

    @ApiModelProperty(value = "计划开工日期 ")
    private String zjhkgsj;

    @ApiModelProperty(value = "计划完工日期")
    private String zjhwgsj;

    @ApiModelProperty(value = "要求完成日期")
    private String zyqwcsj;

    @ApiModelProperty(value = "审核通过日期")
    private String zshtgsj;

    @ApiModelProperty(value = "项目描述")
    private String zxmmsh;

    @ApiModelProperty(value = "数量 - 计数器 ")
    private String uomz1;

    @ApiModelProperty(value = "客商编码")
    private String zbpcode;

    @ApiModelProperty(value = "计划收入")
    private String zbuincome;

    @ApiModelProperty(value = "货币码 ")
    private String currency;

    @ApiModelProperty(value = "税金")
    private String ztaxes;

    @ApiModelProperty(value = "预算已占")
    private String zbudcamp;

    @ApiModelProperty(value = "预算已耗用")
    private String zbudguse;

    @ApiModelProperty(value = "业务关闭日 ")
    private String ztfywgbr;

    @ApiModelProperty(value = "财务关闭日")
    private String ztfcwgbr;

    @ApiModelProperty(value = "最大修改时间")
    private String updateTime;

    @ApiModelProperty(value = "确收类型 0-全额，1-净额")
    private String zqslx;

    private String apoLoadat;

    private String apoLoatim;

    private String apoLoadattim;

    private String areaName;

    private String zsjkgsj;

    private String zsjwgsj;

    @ApiModelProperty(value = "项目现场负责人")
    private String projScenePerson;

    @ApiModelProperty(value = "划小经营单元")
    private String managementUnit;

    @ApiModelProperty(value = "拓展类型 0：自主拓展 1：合作拓展")
    private String expansionType;

    @ApiModelProperty(value = "是否主实协同")
    private String iscoordination;

    @ApiModelProperty(value = "协同类型")
    private String coordinationtype;

    @ApiModelProperty(value = "赛道划分")
    private String trackDivision;

    @ApiModelProperty(value = "确收类型（废弃）")
    private String confirmType;

    @ApiModelProperty(value = "枚举值：1-工程监理；2-设计监理，计划增加")
    private String supervisorSubject;

    @ApiModelProperty(value = "枚举值：10-核心业务；20-重要业务；30-一般业务，计划增加")
    private String natureOfBusiness;

    @ApiModelProperty(value = "是否为特定项目 枚举值：0-否；1-是")
    private String isSpecificProject;

    @ApiModelProperty(value = "是否总包 枚举值：0-否；1-是")
    private String isTotalPackage;

    @ApiModelProperty(value = "核算方法 1:进度履约法 ，2:最终转移法")
    private String zhsff;

    @ApiModelProperty(value = "1.甲方制定;2丙方授权;3.全额外包;4.低毛利项目;5.货物采购转移业务;6.服务采购转移")
    private String netBusinessMode;

    @ApiModelProperty(value = "归属省份编码")
    private String provinceCode;

    @ApiModelProperty(value = " 限制外（分）包类型")
    private String ectocystType;

    @ApiModelProperty(value = "分包对象:1:内部 2:外部 3:内外部 4:不分包")
    private String subContractObject;

    @ApiModelProperty(value = "业务属性:1:【自有资源交付】、2:【长期高价值客户】、3:【高价值业务】、4:【核心业务】、5:【SM业务】、6:【JMRH业务】、7:【其他敏感业务】")
    private String businessAttribute;

    @ApiModelProperty(value = "最终客户")
    private String fanalCustomer;

    @ApiModelProperty(value = "不分包清单项目校验:1:开启 2：关闭")
    private String subcontractCheck;

    @ApiModelProperty(value = "OA党组织会议纪要编号")
    private String oaConferenceNumber;

    @ApiModelProperty(value = "客户经理编号")
    private String cmId;

    @ApiModelProperty(value = "分包比例")
    private String subContractingRatio;

    @ApiModelProperty(value = "关键行业：T0能源电力、T1交通、T2城乡、T3教育、T4医卫、T5政法、T6要客、T7党政、T8园区开发区、T9金融、T10应急、T11其它")
    private String keyIndustries;

    @ApiModelProperty(value = "关键业务：K0数字化转型（软件）、K1云及数据中心、K2双碳节能、K3网信安、K4智慧应用、K5其它")
    private String keyBusiness;

    @ApiModelProperty(value = "是否不分包项目：1:不允许分包 2: 允许分包")
    private String isSubcontract;

    @ApiModelProperty(value = " 是否母分协同")
    private String isCollaboration;

    @ApiModelProperty(value = "协同单位")
    private String cooperativeUnit;

    @ApiModelProperty(value = "主标签")
    private String masterTag;

    @ApiModelProperty(value = "副标签")
    private String subTag;

    @ApiModelProperty(value = "识别主标签")
    private String originalMasterTag;

    @ApiModelProperty(value = "识别副标签")
    private String originalSubTag;

    @ApiModelProperty(value = "主标签优先级")
    private String masterTagPriority;

    @ApiModelProperty(value = "最终客户")
    private String finalCustomer;

    @ApiModelProperty(value = "主标签")
    private String mainLabelId;

    @ApiModelProperty(value = "辅助标签")
    private String auxiliaryLabelId;

    @Transient
    @TableField(exist = false)
    @ApiModelProperty("项目金额")
    private Long projectAmount;

    @Transient
    @TableField(exist = false)
    @ApiModelProperty("投标区域")
    private String[] arealist;

    @Transient
    @TableField(exist = false)
    @ApiModelProperty("总数")
    private Integer total;

}